package xml;

import org.w3c.dom.Node;

import bean.vo.ClienteVO;
import bean.vo.CotizacionVO;
import bean.vo.OrdenPedidoVO;

public class SerializadorOrdenPedido {
	
	public static OrdenPedidoVO deserializar(Node nodoOrdenPedido) throws Exception {
		if (nodoOrdenPedido.getNodeName() != Constantes.ORDEN_PEDIDO) {
			throw new Exception("Error - nodo orden de pedido invalido");
		}
		
		OrdenPedidoVO ordenPedido = new OrdenPedidoVO();
		
		ordenPedido.setNumeroPedido(Integer.parseInt(XmlUtil.getAttributeValue(nodoOrdenPedido, Constantes.NUMERO)));
		
		Node nodoCliente = XmlUtil.getChildNodeWithName(nodoOrdenPedido, Constantes.CLIENTE);
		ClienteVO cliente = SerializadorCliente.deserializar(nodoCliente);
		ordenPedido.setCliente(cliente);
		
		Node nodoReferencia = XmlUtil.getChildNodeWithName(nodoOrdenPedido, Constantes.REFERENCIA);
		Node nodoCotizacion = XmlUtil.getChildNodeWithName(nodoReferencia, Constantes.COTIZACION);
		CotizacionVO cotizacion = SerializadorCotizacion.deserializar(nodoCotizacion);
		
		ordenPedido.setCotizacion(cotizacion);
		
		return ordenPedido;
	}
	
}
